Синхронизация контрагентов =========================== Синхронизация работает по следующей схеме: 1. Запрашиваются данные из альферско по полю ИНН/ОГРН (поле и тип можно указывать в конфиге) Записи получаются в порядке их добавление в БД (по полю sys:node-dbid) Запрашиваются записи с типом ``idocs:contractor`` 2. Из записей составляется список ИНН/ОГРН по которому отправляется запрос в Контур 3. По полученным данным из контура обновляются записи контрагентов согласно мапе (``src/main/resources/counterparty-sync/default-mapping-attributes.json``, решено было пока в конфиг не выносить) Если в записи изменять нечего, запрос на изменение не отправляется Конфигурация синхронизации: .. image:: _static/counterparties_sync/sync_1.png :width: 600 :align: center **Ключ** - ключ для запросов в контур `https://focus-api.kontur.ru/api3/req/userform `_ **Cron expression** - Cron выражение для шедулинга **Batch Size** - Кол-во записей запрашиваемое из алфреско для одной итерации, максимальное значение 100 **Параметр для поиска** - Параметр куда будут устанавливается значения для поиска в запросе. ИНН (inn) или ОГРН (ogrn) **Атрибут для поиска** - Атрибут в котором лежит значение ИНН/ОГРН, по которому будет осуществляется поиск в контуре **Состояние синхронизации** - информация о состоянии синхронизации, используется когда синхронизация включена * ``lastModifiedNodeDbid`` - значение поля sys:node-dbid, последней обработанной записи * ``countProcessedNodes``- кол-во обработанных записей * ``status``- Статус синхронизации: * ``TRIGGER_WAITING``- Ожидает начала планового обновления (Cron expression) * ``IN_PROGRESS`` - Синхронизация в процессе обновления контрагентов * ``RETRY_WAITING``- Ожидает время из nextTry для попытки успешно завершить итерацию (всего три попытки, через 10 сек, через 1 минуту и через 10 минут) * ``ERROR`` - Все попытки успешно завершить итерацию провались. Ожидает начала планового обновления (Cron expression) * Дополнительно: При запуске микросервиса интеграции, если синхронизация находилась в состоянии ``IN_PROGRESS`` или ``RETRY_WAITING``, она продолжит работу. При ``RETRY_WAITING`` кол-во попыток будет сброшено Изменение конфигурации синхронизации останавливает синхронизацию и запускает её заново. * ``tryCount`` - Номер попытки при ошибке во время синхронизации * ``nextTry`` - Время когда синхронизация начнёт работу после ошибки * ``error`` - Сообщение об ошибке